#pragma once
//D3DCOLOR
#include "../SGD Wrappers/CSGD_Direct3D.h"

class HeatPhysics
{
	float minTemp;	// The minimum temperature the object can have.
	float maxTemp;	// The maximum temperature the object can have.
	float curTemp;	// The current temperature of the object.
	float startTemp; // the starting temperature of the object

	bool appliedHeat;

protected:
	float coolRate;	// The rate at which the object's temperature returns to normal (0).

public:
	// Constructor
	HeatPhysics(void);

	// Destructor
	virtual ~HeatPhysics(void);

	//////////////////////////////////////////////////
	// Accessors:
	float MinTemp(void) const	 { return minTemp; }
	float MaxTemp(void) const	 { return maxTemp; }
	float CurTemp(void) const	 { return curTemp; }
	float CoolRate(void) const	 { return coolRate; }
	float StartTemp(void) const	 {return startTemp; }

	//////////////////////////////////////////////////
	// Mutators:
	void SetMaxTemp(float temp);
	void SetMinTemp(float temp);
	void SetCurTemp(float temp);
	void SetCoolRate(float rate);

	//////////////////////////////////////////////////
	// Methods:
	virtual void ApplyHeat(float amount);
	virtual void CoolDown(float deltaTime);
	virtual void Update(float deltaTime);
	D3DCOLOR GetColorFromTemp(void) const;
};

